昨天的穿隧是把 server SSH 服務想辦法用 cloudflare access 內建的 SSH 應用(application) 把東西丟到外網(實際上也要去 cloudflare zerotrust 去做驗證)。而今天我們要嘗試用 cloudflare tunnel 和 warp 去存取內網的 server。
具體概念圖我們可以參考 cloudflare 官網的這篇 文件
首先會在內網的某個設備上部屬 cloudflared (也就是 cloudflare tunnel 的守護進程),接著在我們的電腦內部屬 warp ,只要設定得當,這樣在外網使用內網的服務時,網路流量會在 warp、cloudflare 邊緣伺服器和 cloudflared 間進行加密傳輸。
實作前,老規矩,先上拓譜圖
內網的設定我們只會在 Ubuntu1(10.250.250.105)上完成
(p.s. 之所以 Ubuntu1 的 IP 和昨天的有出入是因為我把原本的砍了重煉)
先到 cloudflare Zero trust 頁面中
到 Settings > Network > Firewall 中,打開 Proxy 和 Allow WARP to WARP connection,具體如下圖
這是讓我們電腦可以在 WARP 上正常使用 zero trust 團隊的關鍵,沒設定好連最基本的驗證都過不去
到 Settings > warp client > Device settings 去設定新的 Profiles,設定好名字和授權的條件後先這樣就可了,其他維持預設,包含 split tunnels(這東西需要設定好 profile 後才能再次回到這去設定其他的東西),具體如下
接著到 Settings > warp client > Device enrollment 中有個 Device enrollment permissions,我們設定一個 policy (跟昨天一模模一樣樣),具體如下
承上圖,設定好後可以用 policy tester 去測試。
這決定了電腦使用 WARP 時網路流量應該要怎麼去處裡
最後到之前設定的 profile 去設定分割通道(split tunnel)。
首先先解釋
設定一個新的 Tunnel ,選擇 cloudflared 然後跟著內部引導,具體如下
如上圖所述,token 請務必自行保管好。不用擔心我的,圖中的僅為示範
然後我們去 Ubuntu1 上把引導中的指令複製貼上即可,其中根據需求,指令選擇要用 current session only 還是 cloudflared 服務自啟動的, cloudflared 服務架設好後會看到 connectors 那裡有顯示。
最後其他都不用特別設定,因為我們的目標是我們設定的內網,於是只要在 CIDR 裡面設定跟分割通道一樣的 IP 即可。
跑這麼多地方做調整,不說是在設定 WARP ,我還以為是在結印,準備發動忍術勒
到了我們的電腦上,先安裝的 cloudflare warp
登入創建 zero trust 時設定的團隊網域(team domain),看到這後即成功進入 zero trust team。
在 warp 裡可以檢查分割通道(split tunnel)是否有正確用到,詳細可參考下圖
我們可以嘗試用 SSH 連連看 Ubuntu1(10.250.250.105) 和 Ubuntu2(10.250.250.103)(註: 昨天我們只是把這暴露在外網上,所以昨天是沒法直接用內網 IP 去使用 SSH 服務) ,成果如下
當然,OPNsense 也可以直接用內網訪問啦
inspired by:
Connect with cloudflared
ref:
Connect with cloudflared
使用 cloudflare 創建大內網